﻿/**********************************************************************
 * @file   FITKLoadPowerSourcesFESubsys.h
 * @brief  载荷的FE子系统功率源数据类声明
 * @author liuzhonghua (liuzhonghuaszch@163.com)
 * @date   2024-12-05
 *********************************************************************/
#ifndef _FITK_LOAD_POWERSOURCES_FESUBSYS_H_
#define _FITK_LOAD_POWERSOURCES_FESUBSYS_H_

#include "FITKAcousticsPhysicsAPI.h"
#include "FITKLoadAbsPowerSources.h"

namespace Acoustics
{
    class FITKAcousticsAbstractSpectra;
    /**
     * @brief  载荷的FE子系统功率源数据类
     * @author liuzhonghua (liuzhonghuaszch@163.com)
     * @date   2024-12-05
     */
    class  FITKAcousticsPhysicsAPI FITKLoadPowerSourcesFESubsys :
        public FITKLoadAbsPowerSources
    {
        FITKCLASS(Acoustics, FITKLoadPowerSourcesFESubsys);
        Q_OBJECT;
    public:
        /**
         * @brief    Create the FITKLoadPowerSourcesFESubsys object
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-05
         */
        explicit FITKLoadPowerSourcesFESubsys();
        /**
         * @brief    Destroy the FITKLoadPowerSourcesFESubsys object
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-05
         */
        virtual ~FITKLoadPowerSourcesFESubsys();
        /**
         * @brief    Get the Acoustics Load Type object
         * @return   AcousticsLoadType
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-05
         */
        virtual AcousticsLoadType getAcousticsLoadType() override;
        /**
         * @brief    拷贝数据
         * @param[i] obj
         * @return   bool
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-05
         */
        virtual bool copy(FITKAbstractDataObject* obj) override;
        /**
         * @brief    设置频谱ID
         * @param[i] spectraID
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-05
         */
        void setSpectraDataID(int spectraID);
        /**
         * @brief    获取频谱ID
         * @return   int
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-05
         */
        int getSpectraDataID();
        /**
         * @brief    获取频谱数据对象
         * @return   FITKAcousticsAbstractSpectra *
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-05
         */
        FITKAcousticsAbstractSpectra* getSpectraDataObj();

    private:
        /**
         * @brief  频谱ID
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-12-05
         */
        int _spectraID{ -1 };
    };
}


#endif // _FITK_LOAD_POWERSOURCES_FESUBSYS_H_